import router from './router';
import store from './store';
import { Message } from 'element-ui';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
import { getToken, setToken } from '@/utils/auth';
import { isRelogin } from '@/utils/request';
import { socialLogin } from '@/api/login';
NProgress.configure({ showSpinner: false });

const whiteList = ['/login', '/auth-redirect', '/bind', '/register', '/oauthLogin', ''];

router.beforeEach((to, from, next) => {
    // console.log('to.query', to);
    NProgress.start();
    next()
    // if (to.query.loginId) {
    //     socialLogin(to.query.loginId)
    //         .then((res) => {
    //             // 保存token
    //             NProgress.done();
    //             setToken(res.token);
    //             next();
    //         })
    //         .catch((error) => {
    //             next({ path: '/login' });
    //         });
    // }
    // if (to.query.token) {
    //     setToken(to.query.token)
    // }
    //
    // if (getToken()) {
    //     to.meta.title && store.dispatch('settings/setTitle', to.meta.title);
    //     /* has token*/
    //     if (to.path === '/login') {
    //         next({ path: '/' });
    //         NProgress.done();
    //     } else {
    //         if (store.getters.roles.length === 0) {
    //             isRelogin.show = true;
    //             // 判断当前用户是否已拉取完user_info信息
    //             store
    //                 .dispatch('GetInfo')
    //                 .then((res) => {
    //                     isRelogin.show = false;
    //                     const roles = res.deptMenu;
    //                     store.dispatch('GenerateRoutes').then((accessRoutes) => {
    //                         router.addRoutes(accessRoutes); // 动态添加可访问路由表
    //                         // 根据roles权限生成可访问的路由表
    //                         if (to.path === '/') {
    //                             if (roles[0] != null) {
    //                                 if (roles[0].includes('http') || roles[0].includes('https')) {
    //                                     const rol = 'index';
    //                                     next({ path: "/" + rol, replace: true });
    //                                 }
    //                                 else {
    //                                     // 提交mutation设置currentRole
    //                                     store.commit('permission/SET_CURRENT_ROLE', roles[0]);
    //                                     next({ path: "/" + roles[0], replace: true });
    //                                 }
    //
    //                             } else {
    //                                 const rol = 'index';
    //                                 // store.commit('permission/SET_CURRENT_ROLE', rol);
    //                                 next({ path: "/" + rol, replace: true }); // hack方法 确保addRoutes已完成
    //                             }
    //                         } else {
    //                             next({ ...to, replace: true });
    //                         }
    //                     });
    //                 })
    //                 .catch((err) => {
    //                     store.dispatch('LogOut').then(() => {
    //                         Message.error(err);
    //                         next({ path: '/' });
    //                     });
    //                 });
    //         } else {
    //             next();
    //         }
    //     }
    // } else {
    //     // 没有token
    //     if (whiteList.indexOf(to.path) !== -1) {
    //         // 在免登录白名单，直接进入
    //         next();
    //     } else {
    //         next(`/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页
    //         NProgress.done();
    //     }
    // }
});

router.afterEach(() => {
    NProgress.done();
});
